import org.junit.Test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @author CHENTAIWEN
 * @create 2022/9/15 16:10
 */
/**
 * 二分查找
 * @author mingyifan
 * @date 2022-06-27 13:11
 */
public class SzTest {


    /**
     *  遇到list中map中有相同的key，操作第一个map后退出，操作内容就是把俩value相加
     *  @param
     *  @return void
     *  mingyifan
     *  2022/9/15 16:06
     */
    @Test
    public void test19() throws Exception {
        //
//        如果不存在添加到list，如果存在，对里面属性进行添加，
        ArrayList<Map> arr = new ArrayList<>();
        HashMap<String, Integer> map1 = new HashMap<>();
        map1.put("K",1);
        map1.put("Q",1);
        HashMap<String, Integer> map2 = new HashMap<>();
        map2.put("K",2);
        arr.add(map1);
        arr.add(map2);
// -----------------------------准备数据
        String name ="K";
        int targetValue =2;
// ---------------------模拟的入参
        boolean flag=true;
        for (Map map : arr) {
            if (map.containsKey(name)){
                Integer number = (Integer)map.get(name);
                map.put(name,number+targetValue);
                flag=false;
                break;
            }
        }
        if (flag){
            HashMap hashMap = new HashMap();
            hashMap.put(name,targetValue);
            arr.add(hashMap);
        }
        System.out.println(arr);

    }

    /**
     *  遇到map中没有的测试
     *  @param
     *  @return void
     *  mingyifan
     *  2022/9/15 16:06
     */
    @Test
    public void test12() throws Exception {
        //
//        如果不存在添加到list，如果存在，对里面属性进行添加，
        ArrayList<Map> arr = new ArrayList<>();
        HashMap<String, Integer> map1 = new HashMap<>();
        map1.put("K",1);
        HashMap<String, Integer> map2 = new HashMap<>();
        map2.put("K",2);
        arr.add(map1);
        arr.add(map2);
// -----------------------------准备数据
        String name ="KKKK";
        int targetValue =2;
// ---------------------模拟的入参
        boolean flag=true;
        for (Map map : arr) {
            if (map.containsKey(name)){
                Integer number = (Integer)map.get(name);
                map.put(name,number+targetValue);
                flag=false;
                break;
            }
        }
        if (flag){
            HashMap hashMap = new HashMap();
            hashMap.put(name,targetValue);
            arr.add(hashMap);
        }
        System.out.println(arr);

    }

    @Test
    public void test13() throws Exception {
        List<Integer> list = new ArrayList<>();
        for(int i = 10;i>0;i--) {
            list.add(i);
        }
        for(int i = 0;i<10;i++) {
            list.add(i);
        }
        List<Integer> newlist=list.stream().distinct().collect(Collectors.toList());
        System.out.println(list);
        System.out.println(newlist);
    }
}
